﻿using Cofe.Core.Dynamic;
using Cofe.Core.Property;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Cofe.Core.EntryType;
using System.Runtime.Serialization;

namespace Cofe.Core
{    
    public interface ICofeSystemInfo : IDynamicInterface<IPropertyHost>
    {
        CofeAttributes CofeAttributes { get; }
        IPropertyHost Properties { get; }
        dynamic DynamicProperties { get; }        
        ICofeDirectoryInfo Parent { get; }
        IEntryTypeInfo EntryTypeInfo { get; }

        Guid Id { get; }
        string ParseName { get; }
        string Name { get; }
        string Label { get; }

        int Position { get; set; }

        string Type { get; }        

        Task DeleteAsync();
        Task RefreshAsync();

        DateTime LastWriteTimeUtc { get; }
        DateTime CreationTimeUtc { get; }
    }      
}
